package pe.edu.upc.dew.grupo7.dao;

import java.io.ObjectInputStream.GetField;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;

import pe.edu.upc.dew.grupo7.model.Boleto;
import pe.edu.upc.dew.grupo7.model.Funcion;

public class BoletoDaoJdbc extends SimpleJdbcDaoSupport implements BoletoDao {

	public Boleto getClientePorDni(String dni) {
		return getSimpleJdbcTemplate().queryForObject(
				"select dni, codigoFuncion from Clientes where dni=?",
				new BoletoMapper(), dni);

	}

	public List<Boleto> getClientes() {
		return getSimpleJdbcTemplate().query(
				"select dni, codigoFuncion from Clientes ",
				new BoletoMapper());

	}

	public void eliminarClientes(String dni) {
		getSimpleJdbcTemplate().update("delete from Clientes where dni=?", dni);
	}

	public void insertarCliente(Boleto cliente) {
		getSimpleJdbcTemplate().update(
				"insert into Clientes (dni,codigoFuncion) values (?,?)",
				cliente.getDni(), cliente.getFuncion().getCodigofuncion());

	}

	public class BoletoMapper implements RowMapper<Boleto> {
		public Boleto mapRow(ResultSet rs, int rowNumber) throws SQLException {
			Boleto boleto = new Boleto();
			boleto.setDni(rs.getString("dni"));
			Funcion funcion = new Funcion();
			funcion.setCodigofuncion(rs.getString("codigoFuncion"));
			boleto.setFuncion(funcion);
			return boleto;
		}
	}
}
